МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
"Внутрішнє представлення в пам’яті комп’ютера статичних даних"
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи № 1
з дисципліни
" Програмування. Частина III.
Структури даних та алгоритми "
для студентів напряму
6.050102 “Комп’ютерна інженерія”
Львів – 2009
Методичні вказівки до лабораторної роботи "Внутрішнє представлення в пам’яті комп’ютера статичних даних" з дисципліни “Програмування. Частина IIІ. Структури даних та алгоритми" для підготовки студентів напряму 6.050102 “Комп’ютерна інженерія” / Укл. Т.А.Лисак – Львів: Видавництво НУ “Львівська політехніка”, 2009 – 27 с.
Укладач: Лисак Т.А., ст. викладач каф.ЕОМ
Відповідальний
за випуск: Мельник А.О., д-р техн. наук, проф.
Рецензенти: Мороз І.В., ст. викладач каф.ЕОМ
Юрчак І.Ю., доцент кафедри САПР, к.т.н.
1. МЕТА РОБОТИ
Дослідження внутрішнього представлення в пам’яті комп’ютера даних статичної структури.
2. ТЕОРЕТИЧНІ ВІДОМОСТІ
2.1. Класифікація типів даних
Основна мета будь-якої програми полягає в обробці даних. Дані різних типів зберігаються в пам’яті комп’ютера і обробляються по-різному. Згідно з концепцією типів даних, кожний тип даних однозначно визначає:
множину значень, які може приймати змінна заданого типу;
операції та функції, які можна застосовувати до змінної заданого типу;
внутрішнє представлення змінної у пам'яті комп'ютера.
Нагадаємо, що пам'ять виділяється не для типу даних, а для розміщення змінних або констант певних типів.
В мові С++ розрізняють наступні категорії типів:
базові типи даних;
похідні типи даних.
Базові типи мають імена, які є ключовими словами мови. До базових типів відносяться: скалярні типи і порожній тип (void).
Скалярні типи діляться на цілочисельні і дійсні типи (float, double, long double). Логічний тип (bool), символьні (char, wchar_t) та цілі (short, int, long) типи даних відносяться до цілочисельних типів. Для них визначені всі операції роботи з цілими числами.
Похідні типи визначаються на основі базових типів. Похідні типи діляться на скалярні і структуровані (або агрегатні).
До скалярних похідних типів відносяться:
переліки (enum) ;
вказівники (ім'я_типу *);
посилання (ім'я_типу &).
До структурованих похідних типів відносяться:
масиви;
структури (struct);
об'єднання (union);
класи (class).
В структурах, об'єднаннях і класах можуть використовуватись бітові поля.
В мові С++ існує також чотири спеціфікатора типів, які можна використовувати разом із зазначеними базовими типами:
Спеціфікатори short (короткий) і long (довгий) застосовуються до цілих. У таких оголошеннях слово int можна опускати, що зазвичай й робиться. Найчастіше для представлення цілого, описаного з спеціфікатором short, виділяється 16 біт, із спеціфікатором long - 32 біта, а значенню типу int - або 16, або 32 біта.
Спеціфікатори signed (зі знаком) або unsigned (без знака) можна застосовувати до будь-якому цілочисельного типу. Вони вказують, як інтерпретується нульовий біт змінної, тобто, якщо зазначено ключове слово unsigned, то нульовий біт інтерпретується як частина числа, у противному випадку нульовий біт інтерпретується як знаковий. У випадку відсутності ключового слова unsigned змінна вважається знаковою.
2.2. Базові типи даних
Порожній тип
Порожній тип (void) синтаксично поводиться як базовий тип. Однак використовувати його можна тільки як частину похідного типу, оскільки об'єктів типу voіd не існує. Він використовується для того, щоб вказати, що функція не повертає ніякого значення, або як базовий тип для вказівників на об'єкти невідомого типу.
void f() // функція f не повертає ніякого значення
void* pv; // вказівник на объект невідомого типу
Логічний тип даних
Логічний тип (bool) характеризується двома значеннями даних: false (хибність) і true (істина). Змінні цього типу займають 1 байт у пам'яті комп'ютера. В мові C++ значення змінних типу int можна асоціювати з логічними значеннями: нулю відповідає значення false, всім ...